package co.uniquindio.software.medisys.logica;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.NoResultException;
import javax.persistence.Persistence;

import co.uniquindio.software.medisys.entidades.Usuario;

public class GestorUsuario {

	EntityManagerFactory emf = Persistence.createEntityManagerFactory("MedisysPU");

	public Usuario consultarUsuario(String login, String password) {
		Usuario u;
		try {

			EntityManager em = emf.createEntityManager();
			u = (Usuario) em.createQuery("SELECT u FROM Usuario u WHERE u.nombre=:login AND u.password=:password")
					.setParameter("login", login)
					.setParameter("password",password).getSingleResult();
			if(u != null){
				return u;
			}else{
				return null;
			}
			
		} catch (NoResultException ex) {
			ex.printStackTrace();
			u = null;
		}
		return u;
	}

	public void actualizarUsuario(Usuario u){
		EntityManager em = emf.createEntityManager();
		EntityTransaction et = em.getTransaction();
		et.begin();
		em.merge(u);
		em.flush();
		et.commit();
	}

	public Usuario consultarUsuarioPorCod(int codigo) {
		Usuario u;
		try {
	
			EntityManager em = emf.createEntityManager();
			u = (Usuario) em.createQuery("SELECT u FROM Usuario u WHERE u.idUsuario=:cod")
					.setParameter("cod", codigo).getSingleResult();
			if(u != null){
				return u;
			}else{
				return null;
			}
			
		} catch (NoResultException ex) {
			ex.printStackTrace();
			u = null;
		}
		return u;
	}
}